import java.io.File;
import java.util.HashMap;

public class day_04_File_9 {
    public static void main(String[] args) {
        // 需求：统计一个文件夹中每种文件的个数并打印。（考虑子文件夹）打印格式如下：txt:3个 doc:4个 jpg:6个
        File file = new File("C:\\Users\\Fairy\\Desktop\\Java");
        System.out.println(getCount(file).toString());
    }

    static HashMap<String, Integer> hashMap = new HashMap<>();
    public static HashMap<String, Integer> getCount(File file) {
        File[] files = file.listFiles();
        for (File f : files) {
            // 如果是文件，统计
            if (f.isFile()) {
                String[] arr = f.getName().split("\\.");
                if (arr.length >= 2) {
                    String endName = arr[arr.length - 1];
                    if (hashMap.containsKey(endName)) {
                        // 后缀名已经在hashmap中存在
                        int count = hashMap.get(endName);
                        count++;
                        hashMap.put(endName, count);
                    } else {
                        // 后缀名在hashmap中不存在，则添加新的键
                        hashMap.put(endName, 1);
                    }
                }
            }
            // 如果是文件夹，递归
            else {
                getCount(f);
            }
        }
        return hashMap;
    }
}
